<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>函数使用注意事项和细节</title>
    // js 重载 会覆盖掉上一次的定义。
    <script type="text/javascript">
        function f1(){
            alert("ok jack~~");
        }

        function f1(name){
            alert("hi "+name);
        }
        f1();

        function f2(){

            //2,函数的 arguments 隐形函数(作用域在function 函数内)
            //(1) 隐形参数: 在function 函数中不需要定义，可以直接用来获取所有参数的变量。
            //(2) 隐形参数特别像java 的可变参数一样。public void fun(int... args);
            //(3) js 中的隐形参数跟java的可变参数一样。
            // 遍历 函数的arguments 隐形参数。 arguments 隐形参数.
            // arguments 是数组.
            console.log("arguments = ",arguments);
            console.log("arguments 长度="+ arguments.length);
            alert("f2()...");
        }

        f2(10,20,30,"lwh");

        //3,（1）如果我们的函数有形参，在传入实参的时候，仍然按照顺序匹配。
        // (2) 如果有匹配上，就赋给他，如果没有匹配上，也无所谓。
        // (3) 仍然会把所有的实参，赋给arguments.
        // (4) 如果形参个数，大于了实参个数，则该形参的值为undefined。

        function f3(n){
            console.log("n = "+n); //100
            console.log("arguments=",arguments);
        }

        f3(100,90,20);


    </script>
</head>
<body>

</body>
</html>